1. Field of the Invention
The present invention relates to a CG (computer graphics) data generating apparatus which automatically generates, from CAD (computer aided design) data of objects, CG data (data for generating drawings of computer graphics images) for the objects; a CG animation editing apparatus which uses a CG data generating apparatus to perform high-speed generation of CG animation; and an animation path generating apparatus which generates paths which are used in path animation of computer graphics.
2. Description of Related Art
With recent improvements in animation technology for computer graphics, there has been an increase in the use of what is known as walk-through computer graphics, in which the user within a virtual reality world moves about and can easily experience the virtual reality world. Of this application, use is broadening of what is known as scene simulation, in which the manner in which objects in the virtual world are seen is somewhat limited and the viewing point of the user within this world can be freely moved about. To make this type of CG simulation practical, it is necessary to make it easy to generate CG data of real objects.
In A CG animation editing apparatus which executes editing processing of CG animation, CG data of an object is generated, and then CG animation of the object is generated based on this data. Because the job of generating the CG data from the beginning is very difficult, and because it is difficult to generate realistic-looking objects, plotting data generated using CAD (computer aided design) has recently been used. Because this CAD plotting data is generated for the purpose of manufacturing, it has many parts which are not required for display, such as plotting data elements (polygons) for parts of the object that cannot be seen, and detailed shapes of objects at a distance.
However, the generation of CG animation requires such things as judgments with regard to the intersection of the plotting data and the line of view, calculation of illumination at vertices of the plotting data, and judgments of intersections of light rays with plotting data, for the purpose of applying shadows, the amount of calculations being greater the more numerous are the plotting data elements. Therefore, the use of plotting data generated using CAD as is results in a significant drop in computer graphics drawing speed.
When using CAD plotting data in the generation of CG data, it is necessary to remove the unwanted parts from the CAD plotting data. For example, because a box made using 6 sheets is generated in CAD using 36 (6xc3x976) square polygons, whereas in computer graphics this can be represented by 6 square polygons that can be seen from the outside, it is necessary to remove the unwanted parts from the CAD plotting data when generating CG data from this CAD plotting data.
With regard to this requirement, in the past the practice has been to first use the CAD plotting data as is to make a conversion to CG form, the user then viewing the resulting CG image, predicting which polygons are likely to be unnecessary, and extracting the unnecessary parts from the CAD plotting data. That is, in the past, the method used was that of manual removal by the user of unnecessary parts from the CAD plotting data.
However, in the past when polygons unnecessary for CG animation were manually selected and removed using visual observation, the first problems existed with regard to presenting user with an unavoidably large work load. In addition, as new CAD plotting data was added, it was necessary to manually select and remove the unnecessary parts from the newly added plotting data.
One important application of computer graphics, as noted above, is the creation of graphics which have an effective impact in presenting a user the situation of moving about within a virtual world created by means of computer graphics. For example, in the field of architecture, computer graphics are used to allow the user to walk through a CG-generated building before it is constructed and to verify harmony with the surrounding environment, and in driver education it is possible for a student to drive through a CG-generated course. These applications have made path animation, in which the viewing point or object is moved through a pre-established path, an important technology.
In path animation in the past, the user was made to set the points through which the past passed for each frame (for each time), linear interpolation between the path points being used to set the path of the viewing point or an object.
This path point setting must in actuality be done by specifying positions as 3-axis coordinates. In the past, the path point setting method used was that of using three drawing views, the coordinate positions in the forward path of movement being set using a setting screen viewed from the top, and the height-direction coordinate positions being set from a setting screen viewed from the side. For example, in the case of generating a path animation in which a bird is caused to move, the path points are set in consideration of the forward-direction movement and height movement of the bird, so that the bird does not collide with either the ground or buildings.
In this manner, in the past the method used was that of having the user manually specify 3-dimensional coordinates to set the points through which the path passes, thus generating the paths of the viewing point or objects.
However, in following this type of technology of the past, if an obstacle exists, to avoid this object, because the user must specify a large number of path points in the form of 3-dimensional coordinate positions, not only does the task of performing the setting of path passage points become an extremely troublesome one, but also a large memory capacity is required.
With the technology of the past, it is necessary to generate the paths for objects and viewing points beforehand, and because these cannot be dynamically created, if the condition of an obstacle changes, it can be impossible to avoid the obstacle. Additionally, in the case in which a number of objects are moving simultaneously, it is necessary to consider the relationship between the objects.
Because of the above problems, in practice in the past, it has been necessary to perform several tests, setting the paths while verifying the relationship between the objects, this making the path generating task extremely time-consuming, which is the second problem involved with the technology of the past.
The present invention was made in view of the above-noted situation, and has as an object the provision of a CG data generating apparatus which is capable of automatically generating CG data for an object from CAD data of the object, and the provision of a CG animation editing apparatus which is capable of using the above-noted CG data generating apparatus to generate CG animation at a high speed.
A second object of the present invention is the provision of an animation path generating apparatus which can generate both automatically and dynamically a path which avoids an obstacle.
A third object of the present invention is the provision of an animation path generating apparatus which can both automatically and dynamically a final three-dimensional path by just the specification of a planar path.
According to the present invention, a CG data generating apparatus is provided which generates CG data for a CG screen from CAD data that is generated by CAD to define a virtual object made up of polygons, this CG data generating apparatus having a light ray generating/intersecting judgment section which virtually generates and aims at an object defined by CD data a plurality of light rays and which makes a judgment as to whether or not each of the light rays intersects with the polygons which make up the object, and a data deleting section which, eliminates, from the CAD data, data with respect to a polygon for which the judgment of the light ray generating/intersecting judgment section is that none of the light rays intersect therewith, thereby generating CG data.
According to the present invention, a CG animation editing apparatus is provided which generates CG animation of an object from CAD data that is generated by CAD to define a corresponding virtual object made up of polygons, this CG animation editing apparatus having a light ray generating/intersecting judgment section which virtually generates and aims at an object defined by CD data a plurality of light rays and which makes a judgment as to whether or not each of the light rays intersects with the polygons which make up the object, a data deleting section which eliminates from the CAD data, data with respect to a polygon for which the judgment of the light ray generating/intersecting judgment section is that none of the light rays intersect therewith, thereby generating CG data which is suitable for the generation of a computer graphics image, and a CG animation generating section which generates CG animation by using the CG data generated by the data deleting section.
According to the present invention, an animation path generating apparatus is provided, this animation path generating apparatus having means for interactively setting a plurality of points through which a path passes within a virtual space inside which an object exists, means for judging, when a path which joins adjacent path points is set, whether or not there exists an object which interferes, either directly or indirectly, with the path to be set, means for setting a path which joins the above-noted adjacent points when the means for judging the existence of an interfering object judges that such a interfering objects does not exist, and means for automatically setting an alternate route path between the above-noted adjacent points when the means for judging the existence of an interfering object judges that such a interfering objects does exist.
According to the present invention, a path animation generating apparatus is provided, this path animation generating apparatus having means for interactively inputting a path of a moving object within a perspective view as seen from a selected direction in a virtual space in which an object exists, means for calculating the position in the virtual space of a path set by the path input means, means for correcting the positions of a path at each time, which are calculated by the position calculation means, to positions which are removed from the object by a prescribed distance along parallel lines which pass through those positions in the above-noted selected direction.